home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCsiod / scm / onreset.scm < prev    next >
Encoding:
Text File  |  1993-08-18  |  869 b   |  25 lines

  1. (define (call-on-reset p)
  2.         (if (proc? p)
  3.             (eval `(set! err-stack (cons ,p err-stack))
  4.                   on-reset-env)
  5.             (error "arg to call-on-reset must be a procedure"))
  6.         #t)
  7.  
  8. (define on-reset-env
  9.         (make-environment (define err-stack)
  10.                           (define p)
  11.                           (define (reset-handler)
  12.                                   (while err-stack
  13.                                          (set! p (car err-stack))
  14.                                          (set! err-stack (cdr err-stack))
  15.                                          (p)))))
  16.  
  17. (set! *on-reset* (access reset-handler on-reset-env))
  18.  
  19. (define (uncall-on-reset p)
  20.         (if (proc? p)
  21.         (eval `(set! err-stack (delq! ,p err-stack))
  22.               on-reset-env)
  23.             (error "arg to call-on-reset must be a procedure"))
  24.         #t)
  25.